package com.cskaoyan.javase.oop.statickeyword7.compare3;

/**
 * @description: 比较静态与非静态
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 比较静态成员变量和普通成员变量
 * 从以下四个角度
 * - 所属不同
 *  1，静态成员变量属于类的，所有对象共享的
 *  2，普通成员变量属于对象，每个对象都有一个自己的成员变量
 * - 在内存中的位置不同
 *  1，静态成员变量在方法区的静态区当中
 *  2，普通成员变量在堆上的对象中
 * - 在内存中出现时间不同
 *  1，静态成员变量类加载完毕后就存在了
 *  2，普通成员变量必须要创建对象才存在
 * - 调用方式不同
 *  1，静态成员变量可以通过类名点去调用，虽然也可以用对象名点去调用，但是不推荐
 *  2，普通成员变量必须通过对象名点去调用，因为只有对象存在，普通成员变量才会存在
 *
 *  普通成员方法和静态成员方法和上面类似：
 *  普通成员方法：可以访问普通成员变量，static成员也可以访问，因为对象都存在了，一定类加载了，类加载就会加载静态成员
 *  静态成员方法：不能访问普通成员变量，因为类加载完毕后，不一定存在对象，也不能访问普通成员方法。但是可以访问静态成员
 *
 *
 *
 *
 */
public class Demo {
}
